home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1993-01-23 | 4.3 KB | 182 lines |
- 10 KEY OFF
- 20 RANDOMIZE TIMER
- 30 DIM C$(100,100)
- 40 DIM N$(100)
- 50 N$(1)="XXX"
- 60 NUM=3
- 70 Q=1
- 80 REM LOAD CODES
- 90 CLS
- 100 Q=1
- 105 LOCATE 12,23:INPUT "DRIVE\PATH OF CODEFILE: ",DRIVE$
- 110 OPEN DRIVE$+"\CODEFILE.FIL" FOR INPUT AS #1
- 120 INPUT #1,E$:N$(Q)=E$
- 130 IF N$(Q)="XXX" THEN 170
- 140 FOR X=1 TO 37
- 150 INPUT #1,E$:C$(Q,X)=E$:NEXT X
- 160 Q=Q+1:GOTO 120
- 170 CLOSE #1
- 180 CLS:ON NUM GOTO 830,1190,190
- 190 O=1
- 200 DIM Z$(37),A$(37),O$(37)
- 210 CLS
- 220 REM INITIALIZE
- 230 FOR C=1 TO 37
- 240 READ X$:Z$(C)=X$
- 250 NEXT C
- 260 SCREEN 7
- 270 COLOR 10:WIDTH 40:LOCATE 12,12
- 280 PRINT "BREAK-IT! 1.1"
- 290 COLOR 15:PSET(85,25)
- 300 DRAW "D45R10U15R20D15R10U45L40"
- 310 PSET(95,35):DRAW"D10R20U10L20"
- 320 PSET(105,80)
- 330 DRAW"H10L10F10R10U15H10F10R10"
- 340 PSET(135,80)
- 350 DRAW "H10L10F10R10U45H10"
- 360 PSET(95,35):DRAW"F10"
- 370 COLOR 14:LOCATE 7,20:PRINT "="
- 380 COLOR 9:LOCATE 7,22:PRINT "?"
- 390 COLOR 15
- 400 R=INT(RND(1)*14)+1
- 410 R2=INT(RND(1)*2)+7
- 420 PAINT (87,68),R,15
- 430 PAINT (90,72),R2,15
- 440 PAINT (100,65),R2,15
- 450 PAINT (105,62),R2,15
- 460 PAINT (125,74),R2,15
- 470 PAINT (130,50),R2,15
- 480 PAINT (105,40),R2,15
- 490 PAINT (98,41),R2,15
- 500 LOCATE 24,8:PRINT "PRESS A KEY TO CONTINUE";
- 510 A$=INKEY$:IF A$<>"" THEN 550
- 520 AC=AC+1
- 530 IF AC/500=INT(AC/500) THEN 400
- 540 GOTO 510
- 550 SCREEN 0:WIDTH 80:CLS
- 560 PRINT "I WILL ASK YOU WHAT THE CODE SYMBOLS WILL BE. THEN WHEN YOU HAVE"
- 570 PRINT "INPUTTED ALL THE CODE SYMBOLS YOU WILL BE ABLE TO MAKE A MESSAGE"
- 580 PRINT "IN YOUR CIPHER."
- 590 PRINT "OR YOU MAY DECODE THE OTHER WAY."
- 600 INPUT "(E)NCODE, (D)ECODE, OR (R)ETRIEVE CODE";ANSWER$
- 610 IF ANSWER$="D" THEN 1030
- 620 IF ANSWER$="R" THEN NUM=1:GOTO 1560
- 630 GOTO 660
- 640 REM ENCODE:NUM=1
- 650 INPUT "SAME CODE Y/N";ANSWER$:IF ANSWER$="Y" THEN 720
- 660 PRINT:FOR C=1 TO 5000:NEXT C
- 670 FOR C=1 TO 37
- 680 PRINT Z$(C);:INPUT"";A$(C)
- 690 NEXT C
- 700 PRINT "YOUR SYMBOLS ARE READY."
- 710 PRINT:FOR C=1 TO 5000:NEXT C
- 720 CLS:PRINT:INPUT "TYPE IN MESSAGE";M$
- 730 PRINT "CIPHER: ";
- 740 V=0
- 750 FOR O=1 TO LEN(M$)
- 760 F$=MID$(M$,O,1)
- 770 FOR C=1 TO 37
- 780 IF F$=Z$(C) THEN V=C
- 790 NEXT C
- 800 PRINT A$(V);
- 810 NEXT O
- 820 PRINT:PRINT "THE ORIGINAL MESSAGE WAS: ";M$
- 830 PRINT "(S)AME CODE, (D)IFFERENT CODE, (E)DIT CODE, DE(C)ODE, (L)IST CODE,"
- 840 INPUT "(R)ETRIEVE CODE, S(A)VE CODE, (Q)UIT BREAK-IT! 1.1";ANSWER$
- 850 IF ANSWER$="S" THEN 710
- 860 IF ANSWER$="D" THEN CLS:GOTO 660
- 870 IF ANSWER$="E" THEN 940
- 880 IF ANSWER$="C" THEN 1030
- 890 IF ANSWER$="A" THEN 1410
- 900 IF ANSWER$="R" THEN 1560
- 910 IF ANSWER$="L" THEN 1320
- 920 CLS:COLOR 12
- 921 PRINT "I hope you have enjoyed Break-It! version 1.1. Look for the next"
- 922 PRINT "few versions at Software Creations. I hope that I will get around"
- 923 PRINT "to these new versions. Feel free to do anything with this program."
- 924 COLOR 14:PRINT:PRINT "Press any key to return to DOS..."
- 925 A$=INKEY$:IF A$="" THEN 925
- 926 SYSTEM
- 930 REM EDIT CODE
- 940 FOR C=1 TO 5000:NEXT C:CLS
- 950 INPUT "ENTER CHARACTER TO EDIT";F$
- 960 FOR C=1 TO 37
- 970 IF F$=Z$(C) THEN V=C
- 980 NEXT C
- 990 PRINT Z$(V);:INPUT A$(V)
- 1000 INPUT "EDIT ANOTHER CHARACTER Y/N";ANSWER$
- 1010 IF ANSWER$="Y" THEN 940
- 1020 CLS:FOR C=1 TO 5000:NEXT C:ON NUM GOTO 830,1190
- 1030 REM DECODE:NUM=2
- 1040 FOR C=1 TO 5000:NEXT C:CLS
- 1050 INPUT "SAME CODE Y/N";ANSWER$:IF ANSWER$="Y" THEN 1100
- 1060 FOR C=1 TO 37
- 1070 PRINT Z$(C);:INPUT A$(C)
- 1080 NEXT C
- 1090 FOR C=1 TO 5000:NEXT C
- 1100 CLS:INPUT "TYPE IN CODED MESSAGE";M$
- 1110 PRINT M$
- 1120 FOR O=1 TO LEN(M$)
- 1130 F$=MID$(M$,O,1)
- 1140 FOR C=1 TO 37
- 1150 IF F$=A$(C) THEN V=C
- 1160 NEXT C
- 1170 PRINT Z$(V);
- 1180 NEXT O
- 1190 PRINT:PRINT "(S)AME CODE, (D)IFFERENT CODE, (E)DIT CODE, E(N)CODE, (L)IST CODE,"
- 1200 INPUT "(R)ETRIEVE CODE, S(A)VE CODE, OR (Q)UIT BREAK-IT! 1.1";ANSWER$
- 1210 IF ANSWER$="S" THEN 1100
- 1220 IF ANSWER$="D" THEN 1060
- 1230 IF ANSWER$="E" THEN 940
- 1240 IF ANSWER$="N" THEN 650
- 1250 IF ANSWER$="A" THEN 1410
- 1260 IF ANSWER$="R" THEN 1560
- 1270 IF ANSWER$="L" THEN 1320
- 1281 PRINT "I hope you have enjoyed Break-It! version 1.1. Look for the next"
- 1282 PRINT "few versions at Software Creations. I hope that I will get around"
- 1283 PRINT "to these new versions. Feel free to do anything with this program."
- 1284 COLOR 14:PRINT:PRINT "Press any key to return to DOS..."
- 1285 A$=INKEY$:IF A$="" THEN 925
- 1286 SYSTEM
- 1290 DATA A,B,C,D,E,F,G,H,I,J,K,L,M
- 1300 DATA N,O,P,Q,R,S,T,U,V,W,X,Y,Z
- 1310 DATA 0,1,2,3,4,5,6,7,8,9," "
- 1320 CLS:FOR X=1 TO 37
- 1330 V=(X-1) MOD 3
- 1340 IF Z$(X)=" " THEN O$(X)="SPACE"
- 1350 IF Z$(X)<>" " THEN O$(X)=Z$(X)
- 1360 PRINT TAB(V*10);O$(X);" = ";A$(X);
- 1370 NEXT X
- 1380 PRINT:PRINT:PRINT "PRESS ANY KEY TO RETURN TO MAIN MENU."
- 1390 G$=INKEY$:IF G$="" THEN 1390
- 1400 CLS:ON NUM GOTO 830,1190
- 1410 REM SAVE CODES
- 1420 CLS
- 1430 FOR X=1 TO 37
- 1440 C$(Q,X)=A$(X):NEXT X
- 1450 INPUT "CODE NAME";N$(Q)
- 1460 OPEN DRIVE$+"\CODEFILE.FIL" FOR OUTPUT AS #1
- 1470 FOR X=1 TO Q
- 1480 E$=N$(X):WRITE #1,E$
- 1490 FOR Y=1 TO 37
- 1500 E$=C$(X,Y):WRITE #1,E$
- 1510 NEXT Y:NEXT X
- 1520 Q=Q+1:N$(Q)="XXX"
- 1530 E$="XXX":WRITE #1,E$
- 1540 CLOSE #1
- 1550 ON NUM GOTO 830,1190
- 1560 REM RETRIEVE CODE
- 1570 CLS
- 1580 FOR X=1 TO Q
- 1590 PRINT N$(X):NEXT X
- 1600 PRINT
- 1610 INPUT "YOUR CHOICE:";D$
- 1620 P=1
- 1630 IF D$=N$(P) THEN 1670
- 1640 IF N$(P)="XXX" THEN 1660
- 1650 P=P+1:GOTO 1630
- 1660 PRINT "I DON'T KNOW OF A CODE NAMED ";D$:GOTO 1610
- 1670 FOR X=1 TO 37
- 1680 A$(X)=C$(P,X):NEXT X
- 1690 CLS:ON NUM GOTO 830,1190
-